package com.example.config;

import com.example.interceptors.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Description TODO
 * @Author fantasy
 * @Date 2024/6/27 21:56
 **/


@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Autowired
    private LoginInterceptor loginInterceptor;
    /**
     * 添加拦截器到拦截器注册表中。
     *
     * 此方法用于配置应用中的拦截器，以便在请求处理之前或之后执行自定义逻辑。
     * 通过调用registry.addInterceptor方法添加一个拦截器实例，并使用excludePathPatterns方法指定不需要被该拦截器拦截的URL路径。
     * 这样做可以避免拦截器对某些特定的URL请求生效，比如登录、注册等页面，以及静态资源文件。
     *
     * @param registry 拦截器注册表，用于管理应用中的拦截器。
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 添加登录拦截器，并指定不需要被拦截的URL路径
        registry.addInterceptor(loginInterceptor)
                .addPathPatterns("/**")
                .excludePathPatterns("/","/index.html","/login","/druid/**",
                        "/user/login","/user/register","/favicon.ico","/error/**","/css/**","/js/**");
    }

}
